package org.jsola.contract.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.entity.BaseUpdateDO;

import java.util.Date;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 * 合同
 *
 * @author JanusMix
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Table(name = "con_contract")
public class ContractDO extends BaseUpdateDO<Long> {

    private static final long serialVersionUID = 1L;

    /**
     * 合同分类id
     */
    private Long categoryId;
    /**
     * 模板id
     */
    private Long templateId;
    /**
     * 合同编号
     */
    private String contractNo;
    /**
     * 签署编号(当前时间到分+6位随机数)
     */
    private String signNo;
    /**
     * 业务id(目前是公司id)
     */
    private String subjectId;
    /**
     * 名称
     */
    private String name;
    /**
     * 签章类型,单页签章、多页签章等
     */
    private String sealType;
    /**
     * 合同类型,线下签署、电子签署等
     */
    private Integer contractType;
    /**
     * 合同开始日期
     */
    private Date publishDate;
    /**
     * 签订日期
     */
    private Date signDate;
    /**
     * 合同终止日期
     */
    private Date endDate;
    /**
     * 员工签署时间
     */
    private Date empSignDate;
    /**
     * 合同签署完成时间
     */
    private Date signFinishDate;
    /**
     * 签署甲方账户id
     */
    private String partyAAccountId;
    /**
     * 签署甲方名称
     */
    private String partyAName;
    /**
     * 签署乙方账户id
     */
    private String partyBAccountId;
    /**
     * 签署乙方名称
     */
    private String partyBName;
    /**
     * 签署乙方手机号
     */
    private String partyBPhone;
    /**
     * 合同价格，单位为分
     */
    private Long price;
    /**
     * 状态
     */
    private Integer status;
    /**
     * 合同期限，单位为月
     */
    private Integer dateline;
    /**
     * 档案类型
     */
    private String fileType;
    /**
     * 合同富文本内容
     */
    private String content;
    /**
     * 合同是否需要重新发起(true:是,false:否)
     */
    private Boolean needInitAgain;
    /**
     * 再次发起的合同的id
     */
    private Long againContractId;
    /**
     * 小程序是否展示
     */
    private Boolean appIsShow;
    /**
     * 是否开启人脸检测
     */
    private Boolean isCheckFace;
    /**
     * 是否开启短信核身
     */
    private Boolean isCheckSms;
    /**
     * 是否已查看
     */
    private Boolean isView;


    /**
     * 分类名称
     */
    @Transient
    private String contractCategoryName;

}

